/*------------------ Program.cs ------------------------*/

/*31. Se requiere crear la clase SerHumano que posea los siguientes 
 * atributos privados: 
 * •  _nombre   (String) 
 * •  _peso    (Single) 
 * •  _altura   (Single) 
 * •  _sexo    (String) 
 * Además tendrá los siguientes métodos: 
 * •  Comer(String) 
 * •  Dormir 
 * A partir de la clase SerHumano, se pide: 
 * Crear dos clases(que hereden de la anterior) llamadas Gerente 
 * y Empleado.  
 * Cada una de dichas clases poseerá atributos y métodos 
 * característicos(por ejemplo, la clase Empleado tendrá como 
 * atributo sueldo y como método Trabajar).  
 * Generar, en el método Main, las sentencias necesarias para 
 * probar los miembros de ambas clases.
 */
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Gerente pablo = new Gerente("Pablo Morelli", 2, 68, "Se la come", "Gerencia de Computacion");
            Empleado augusto = new Empleado("Esclavo Augusto Emanuelli", 1, 60, "Es puto", 20);

            Console.WriteLine("---Gerente---");
            pablo.Supervisar();
            pablo.Comer("Hamburgesas");
            pablo.Dormir();

            Console.WriteLine("---Empleado---");
            augusto.trabajar();
            augusto.Comer("Brocoli");
            augusto.Dormir();

            Console.ReadKey();
        }
    }
}

/*------------------ SerHumano.cs ------------------------*/

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class SerHumano
    {
        // Atributos
        private String _nombre;
        private Single _peso;
        private Single _altura;
        private String _sexo;

        // Metodos
        public void Comer(String nombre) {
            Console.WriteLine("Esta comiendo {0}", nombre);
        }
        public void Dormir(){
            Console.WriteLine("Durmiendo...");
        }
        // get
        public String GetNombre() {
            return this._nombre;
        }


        //Constructor
        public SerHumano(string nom, Single peso, Single altur, string sex)
        {
            this._altura = altur;
            this._nombre = nom;
            this._peso = peso;
            this._sexo = sex;
        }

    }
}
/*------------------ Gerente.cs ------------------------*/

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Gerente:SerHumano
    {
        // Atributos
        public String seccion;

        //Constructor
        public Gerente(string nom, Single altur, Single peso, string sex, string seccion)
            : base(nom, peso, altur, sex)
        {
            this.seccion = seccion;
        }

        // Metodos
        public void Supervisar()
        {
            Console.WriteLine("Supervisando...{0}", this.seccion);
        }
    }
}
/*------------------ Empleado.cs ------------------------*/

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Empleado : SerHumano
    {
        // Atributos
        public Double sueldo;

        //Constructor
        public Empleado(string nom, Single altur, Single peso, string sex, double sueldo)
            : base(nom, peso, altur, sex)
        {
            this.sueldo = sueldo;
        }

        // Metodos
        public void trabajar() {
            Console.WriteLine("{0} Trabajando", base.GetNombre() );
        }


    }
}